Asynchronous Transfer Mode (ATM) is a class of digital switching technologies for computer networks. ATM is a cell based technology; that is, compared to common packet technologies such as X.25 or frame relay, ATM transfers short, fixed length units of information called cells. Accordingly, larger packets or protocol data units (PDU's) from a source are broken up into these fixed length cells for transmission, and then reassembled at their destination.
ATM is a connection based technology, meaning that all communications between two stations occur via a virtual circuit (VC) which is initially established between them. ATM is designed to support users having diverse requirements for service. For example, a given VC may be established in accordance with a constant bit rate (CBR) or variable bit rate (VBR) service type. Once established, the service type for a given VC is maintained in accordance with quality of service (QoS) parameters for that type.
In order to control the transmission of VBR cells from an ATM adapter over multiple VCs, it is known to employ a scheduling process which scans a schedule table having multiple entries. Each entry in the schedule table contains a pointer to a list of VCs to be transmitted at a given time. This table is scanned at the link rate. For each entry, a cell for the VC at the head of the list pointed to by that entry is transmitted on the link.
Once a cell for a given VC is transmitted on the link, the VC is rescheduled into the schedule table at a location dictated by the QoS parameters for the VC. In the past, the VC has simply been queued to the tail of the linked list pointed to by the table entry at which it is rescheduled. This method of scheduling has been found to result in less than optimum performance. An improved method of scheduling is therefore desired.